{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# GWRATES complete exmaples\n", "\n", "* Please refer to the [documentation](https://ler.readthedocs.io/en/latest/) for more details." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Short BBH (Binary Black Hole) example with three detectors\n", "* This part of the notebook is a short example to simulate a binary black hole mergers and calculate its rate ($yr^{-1}$).\n", "* All generated data is saved in the `ler_data` folder.\n", "* All interpolation data is saved in the `interpolator_pickle` folder." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# call the GWRATES class\n", "from ler.rates import GWRATES" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* class initialization\n", "* if you want the models and its parameters to print.\n", "\n", " ```ler = GWRATES()```\n", " \n", "* set 'npool' according to your machine's available CPU cores. Default is 4.\n", "* to check no. of cores, \n", "\n", " ```import multiprocessing as mp```\n", " \n", " ```print(mp.cpu_count())```" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "z_to_luminosity_distance interpolator will be loaded from ./interpolator_pickle/z_to_luminosity_distance/z_to_luminosity_distance_0.pickle\n", "differential_comoving_volume interpolator will be loaded from ./interpolator_pickle/differential_comoving_volume/differential_comoving_volume_0.pickle\n", "merger_rate_density interpolator will be loaded from ./interpolator_pickle/merger_rate_density/merger_rate_density_0.pickle\n", "psds not given. Choosing bilby's default psds\n", "Interpolator will be loaded for L1 detector from ./interpolator_pickle/L1/partialSNR_dict_0.pickle\n", "Interpolator will be loaded for H1 detector from ./interpolator_pickle/H1/partialSNR_dict_0.pickle\n", "Interpolator will be loaded for V1 detector from ./interpolator_pickle/V1/partialSNR_dict_0.pickle\n", "\n", " GWRATES set up params:\n", "npool = 4,\n", "z_min = 0.0,\n", "z_max = 10.0,\n", "event_type = 'BBH',\n", "size = 100000,\n", "batch_size = 50000,\n", "cosmology = LambdaCDM(H0=70.0 km / (Mpc s), Om0=0.3, Ode0=0.7, Tcmb0=0.0 K, Neff=3.04, m_nu=None, Ob0=None),\n", "snr_finder = >,\n", "json_file_names = {'gwrates_params': 'gwrates_params.json', 'gw_param': 'gw_param.json', 'gw_param_detectable': 'gw_param_detectable.json'},\n", "interpolator_directory = ./interpolator_pickle,\n", "ler_directory = ./ler_data,\n", "\n", " GWRATES also takes CBCSourceParameterDistribution params as kwargs, as follows:\n", "source_priors = {'merger_rate_density': 'merger_rate_density_bbh_popI_II_oguri2018', 'source_frame_masses': 'binary_masses_BBH_popI_II_powerlaw_gaussian', 'zs': 'sample_source_redshift', 'geocent_time': 'sampler_uniform', 'ra': 'sampler_uniform', 'dec': 'sampler_cosine', 'phase': 'sampler_uniform', 'psi': 'sampler_uniform', 'theta_jn': 'sampler_sine'},\n", "source_priors_params = {'merger_rate_density': {'R0': 2.39e-08, 'b2': 1.6, 'b3': 2.0, 'b4': 30}, 'source_frame_masses': {'mminbh': 4.98, 'mmaxbh': 112.5, 'alpha': 3.78, 'mu_g': 32.27, 'sigma_g': 3.88, 'lambda_peak': 0.03, 'delta_m': 4.8, 'beta': 0.81}, 'zs': None, 'geocent_time': {'min_': 1238166018, 'max_': 1269702018}, 'ra': {'min_': 0.0, 'max_': 6.283185307179586}, 'dec': None, 'phase': {'min_': 0.0, 'max_': 6.283185307179586}, 'psi': {'min_': 0.0, 'max_': 3.141592653589793}, 'theta_jn': None},\n", "spin_zero = True,\n", "spin_precession = False,\n", "create_new_interpolator = False,\n", "\n", " LeR also takes gwsnr.GWSNR params as kwargs, as follows:\n", "mtot_min = 2.0,\n", "mtot_max = 184.98599853446768,\n", "ratio_min = 0.1,\n", "ratio_max = 1.0,\n", "mtot_resolution = 500,\n", "ratio_resolution = 50,\n", "sampling_frequency = 2048.0,\n", "waveform_approximant = 'IMRPhenomD',\n", "minimum_frequency = 20.0,\n", "snr_type = 'interpolation',\n", "psds = [PowerSpectralDensity(psd_file='None', asd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/aLIGO_O4_high_asd.txt'), PowerSpectralDensity(psd_file='None', asd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/aLIGO_O4_high_asd.txt'), PowerSpectralDensity(psd_file='None', asd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/AdV_asd.txt')],\n", "ifos = None,\n", "interpolator_dir = './interpolator_pickle',\n", "create_new_interpolator = False,\n", "gwsnr_verbose = False,\n", "multiprocessing_verbose = True,\n", "mtot_cut = True,\n", "\n", " For reference, the chosen source parameters are listed below:\n", "merger_rate_density = 'merger_rate_density_bbh_popI_II_oguri2018'\n", "merger_rate_density_params = {'R0': 2.39e-08, 'b2': 1.6, 'b3': 2.0, 'b4': 30}\n", "source_frame_masses = 'binary_masses_BBH_popI_II_powerlaw_gaussian'\n", "source_frame_masses_params = {'mminbh': 4.98, 'mmaxbh': 112.5, 'alpha': 3.78, 'mu_g': 32.27, 'sigma_g': 3.88, 'lambda_peak': 0.03, 'delta_m': 4.8, 'beta': 0.81}\n", "geocent_time = 'sampler_uniform'\n", "geocent_time_params = {'min_': 1238166018, 'max_': 1269702018}\n", "ra = 'sampler_uniform'\n", "ra_params = {'min_': 0.0, 'max_': 6.283185307179586}\n", "dec = 'sampler_cosine'\n", "dec_params = None\n", "phase = 'sampler_uniform'\n", "phase_params = {'min_': 0.0, 'max_': 6.283185307179586}\n", "psi = 'sampler_uniform'\n", "psi_params = {'min_': 0.0, 'max_': 3.141592653589793}\n", "theta_jn = 'sampler_sine'\n", "theta_jn_params = None\n" ] } ], "source": [ "# GWRATES initialization with default arguments\n", "ler = GWRATES()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulation of the GW CBC population\n", "\n", "* this will generate a json file with the simulated population parameters\n", "* by default 100,000 events will be sampled with batches of 50,000. \n", "* results will be saved in the same directory as json file.\n", "* resume=True will resume the simulation from the last saved batch.\n", "* if you need to save the file at the end of each batch sampling, set save_batch=True." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Simulated GW params will be stored in ./ler_data/gw_param.json\n", "chosen batch size = 50000 with total size = 100000\n", "There will be 2 batche(s)\n", "Batch no. 1\n", "sampling gw source params...\n", "calculating snrs...\n", "Batch no. 2\n", "sampling gw source params...\n", "calculating snrs...\n", "saving all gw_params in ./ler_data/gw_param.json...\n" ] } ], "source": [ "# ler.batch_size = 100000 # for faster computation\n", "param = ler.gw_cbc_statistics(size=100000, resume=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* generate detectable events\n", "* note: here no input param is provided, so it will track the json file generated above\n", "* final rate is the rate of detectable events" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Getting GW parameters from json file ./ler_data/gw_param.json...\n", "given detectability_condition == 'step_function'\n", "total GW event rate (yr^-1): 452.39505816387026\n", "number of simulated GW detectable events: 437\n", "number of simulated all GW events: 100000\n", "storing detectable params in ./ler_data/gw_param_detectable.json\n" ] } ], "source": [ "rate, param_detectable = ler.gw_rate()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* look for available parameters\n", "* **Note:** This is for spin-less systems." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['zs', 'geocent_time', 'ra', 'dec', 'phase', 'psi', 'theta_jn', 'luminosity_distance', 'mass_1_source', 'mass_2_source', 'mass_1', 'mass_2', 'L1', 'H1', 'V1', 'snr_net'])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "param_detectable.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* all gwrates initialization parameters, simulated parameters's json file names and rate results are strored as json file in the `ler_data` directory by default.\n", "* Now, let's see all the LeR class initialization parameters. This is either get from the json file '.ler_data/gwrates_params.json' or from the ler object." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ler directory: ./ler_data\n", "ler json file names: {'gwrates_params': 'gwrates_params.json', 'gw_param': 'gw_param.json', 'gw_param_detectable': 'gw_param_detectable.json'}\n" ] } ], "source": [ "# what are the saved files?\n", "#ler.json_file_names, ler.ler_directory\n", "print(f\"ler directory: {ler.ler_directory}\")\n", "print(f\"ler json file names: {ler.json_file_names}\")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "param_detectable keys: dict_keys(['zs', 'geocent_time', 'ra', 'dec', 'phase', 'psi', 'theta_jn', 'luminosity_distance', 'mass_1_source', 'mass_2_source', 'mass_1', 'mass_2', 'L1', 'H1', 'V1', 'snr_net'])\n" ] } ], "source": [ "# the generated parameters are not store in the ler instance, but in the json files\n", "# you can quickly access the generated parameters from the json files as shown below\n", "param_detectable = ler.gw_param_detectable\n", "# param = ler.gw_param\n", "\n", "# print keys of the generated parameters\n", "print(f\"param_detectable keys: {param_detectable.keys()}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* here is another way to access the generated parameters from the json files" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "param_detectable keys: dict_keys(['zs', 'geocent_time', 'ra', 'dec', 'phase', 'psi', 'theta_jn', 'luminosity_distance', 'mass_1_source', 'mass_2_source', 'mass_1', 'mass_2', 'L1', 'H1', 'V1', 'snr_net'])\n" ] } ], "source": [ "from ler.utils import get_param_from_json\n", "\n", "param_detectable = get_param_from_json(ler.ler_directory+'/'+ler.json_file_names['gw_param_detectable'])\n", "# param = get_param_from_json(ler.ler_directory+'/'+ler.json_file_names['gw_param'])\n", "\n", "# print keys of the generated parameters\n", "print(f\"param_detectable keys: {param_detectable.keys()}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Note: all GWRATES initialization parameters and some important results are saved in a json file." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dict_keys(['npool', 'z_min', 'z_max', 'size', 'batch_size', 'cosmology', 'snr_finder', 'json_file_names', 'interpolator_directory', 'gw_param_sampler_dict', 'snr_calculator_dict', 'detectable_gw_rate_per_year', 'detectability_condition'])\n", "detectable_gw_rate_per_year: 452.39505816387026\n" ] } ], "source": [ "from ler.utils import load_json\n", "# gwrates_params = load_json(ler.ler_directory+\"/\"+ler.json_file_names[\"gwrates_params\"])\n", "gwrates_params = load_json('ler_data/gwrates_params.json')\n", "print(gwrates_params.keys())\n", "print(\"detectable_gw_rate_per_year: \", gwrates_params['detectable_gw_rate_per_year'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot the generated parameters\n", "\n", "* plotting the redshift distribution of event parameters" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "getting gw_params from json file ler_data/gw_param_detectable.json...\n", "getting gw_params from json file ler_data/gw_param.json...\n" ] }, { "data": { "image/png": "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0J566ilee+01QkNDmTZtGgMHDuTgwYO4u7tXWjeXu8Zy3bt3Z/v27Zf5V7sgOzubO+64A29vbzZv3oynpyf5+fnceeed3HbbbXz44YccO3aMJ554osJxt956K2PGjGHRokUUFRUxdepU7r//fr7//vsanbsuSJIihBDCSqPREBoaCkBxcTGDBg2iZ8+e1haFlJQUhgwZQvv27QFo1qzZZcs7ceJEhSTltddeo3///jz99NMAtGrVip9//pkNGzZY95k9ezbPPPMMI0eOtJ5n7ty5PP3008ycOZPGjRsD4O/vb423suNiYmKYOXMmzz77LLNmzeK7775j586d7Nu3j1atWlW4Bj8/P1QqlU2ZAA899JD1c7NmzViyZAnXX389+fn5NknazJkzue222wB47733aNKkCWvXruX++++vUDfVXWO58PBwTpw4cdl6BktCOXToUFq2bMmqVavQarUArFq1CrPZzDvvvIOHhwexsbGcOnWKsWPHWo99/fXX6dy5My+88IJ13YoVK4iMjOTgwYPWunI0SVKEEMJR3D0pmXwMrVaLSqVy6HmvxEMPPUReXh6bN29GrbaMDnj88ccZO3YsmzZtIi4ujiFDhtChQ4cqyygqKsLDw8Nm3b59+xg8eLDNup49e9okKX/88Qc//fQTzz//vHWdyWSiuLiYwsJCPD0rv6bqjtuzZw9NmjSp9S/d3bt3M2vWLP744w+ysrIwm82AJWlr27atzXWUCwwMpHXr1uzbt++KYi2/Rr1eT2FhYbUx3nbbbXTv3p2PP/7Y2rIElvou74KqLM7yWLZs2VJpq9iRI0ckSRFCiAZPpbJ0u2i1ls8ubN68eWzcuJGdO3fa3JUzZswY4uPj+frrr9m0aRPz589nwYIFTJgwodJygoKCyMrKqvX58/PzmT17Nvfcc0+FbZcmPZc7TlEUjEYj7u7ueHh4oNfrax1LQUEB8fHxxMfH87///Y/GjRuTkpJCfHw8BoOh1uVVFevFLr7G8+fPW1uOLueOO+7gs88+Y+/evdaWrtrEMnDgQF566aUK28LCwmpVlj05deDstm3bGDhwIOHh4TW6lWzUqFGVDuiKjY217jNr1qwK26+77ro6vhIhhGg4PvvsM+bMmcOaNWto3rx5he2RkZE89thjfP7550yePJnly5dXWVbnzp3Zu3evzbo2bdqwY8cOm3W/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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from ler.utils import plots as lerplt\n", "\n", "\n", "# input param_dict can be either a dictionary or a json file name that contains the parameters\n", "plt.figure(figsize=(6, 4))\n", "lerplt.param_plot(\n", " param_name='zs',\n", " param_dict='ler_data/gw_param_detectable.json',\n", " plot_label='zs (detectable)',\n", ")\n", "lerplt.param_plot(\n", " param_name='zs',\n", " param_dict='ler_data/gw_param.json',\n", " plot_label='zs (all)',\n", ")\n", "plt.xlim(0.001,10)\n", "plt.xlabel('zs')\n", "plt.ylabel('pdf')\n", "plt.grid(alpha=0.4)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Custom functions\n", "* `ler` allows internal model functions to be change with custom functions.\n", "* It also allows to change the default parameters of the existing model functions.\n", "\n", "First let's look at what are the input parameters available for ler.GWRATES. The input paramters can divided into three categories\n", "\n", "1. GWRATES set up params\n", "2. CBCSourceParameterDistribution set up params (as kwargs)\n", "3. GWSNR set up params (as kwargs)\n", "\n", "Complete GWRATES initialization is shown below," ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# # below is the example of GWRATES initialization with all the arguments.\n", "# # Uncomment the below code if you need to change the default arguments.\n", "# from ler.rates import GWRATES\n", "# import numpy as np\n", "# import matplotlib.pyplot as plt\n", "# from astropy.cosmology import LambdaCDM\n", "\n", "# ler = GWRATES(\n", "# # GWRATES setup arguments\n", "# npool=4, # number of processors to use\n", "# z_min=0.0, # minimum redshift\n", "# z_max=10.0, # maximum redshift\n", "# event_type='BBH', # event type\n", "# size=100000, # number of events to simulate\n", "# batch_size=50000, # batch size\n", "# cosmology=LambdaCDM(H0=70, Om0=0.3, Ode0=0.7), # cosmology\n", "# snr_finder=None, # snr calculator from 'gwsnr' package will be used\n", "# pdet_finder=None, # will not be consider unless specified\n", "# list_of_detectors=None, # list of detectors that will be considered when calculating snr or pdet for lensed events. if None, all the detectors from 'gwsnr' will be considered\n", "# json_file_names=dict(\n", "# ler_params=\"ler_params.json\", # to store initialization parameters and important results\n", "# unlensed_param=\"unlensed_param.json\", # to store all unlensed events\n", "# unlensed_param_detectable=\"unlensed_param_detectable.json\", # to store only detectable unlensed events\n", "# lensed_param=\"lensed_param.json\", # to store all lensed events \n", "# lensed_param_detectable=\"lensed_param_detectable.json\"), # to store only detectable lensed events\n", "# interpolator_directory='./interpolator_pickle', # directory to store the interpolator pickle files. 'ler' uses interpolation to get values of various functions to speed up the calculations (relying on numba njit).\n", "# ler_directory='./ler_data', # directory to store all the outputs\n", "# verbose=False, # if True, will print all information at initialization\n", "\n", "# # CBCSourceParameterDistribution class arguments\n", "# source_priors= {'merger_rate_density': 'merger_rate_density_bbh_popI_II_oguri2018', 'source_frame_masses': 'binary_masses_BBH_popI_II_powerlaw_gaussian', 'zs': 'sample_source_redshift', 'geocent_time': 'sampler_uniform', 'ra': 'sampler_uniform', 'dec': 'sampler_cosine', 'phase': 'sampler_uniform', 'psi': 'sampler_uniform', 'theta_jn': 'sampler_sine'},\n", "# source_priors_params= {'merger_rate_density': {'R0': 2.39e-08, 'b2': 1.6, 'b3': 2.0, 'b4': 30}, 'source_frame_masses': {'mminbh': 4.98, 'mmaxbh': 112.5, 'alpha': 3.78, 'mu_g': 32.27, 'sigma_g': 3.88, 'lambda_peak': 0.03, 'delta_m': 4.8, 'beta': 0.81}, 'zs': None, 'geocent_time': {'min_': 1238166018, 'max_': 1269702018}, 'ra': {'min_': 0.0, 'max_': 6.283185307179586}, 'dec': None, 'phase': {'min_': 0.0, 'max_': 6.283185307179586}, 'psi': {'min_': 0.0, 'max_': 3.141592653589793}, 'theta_jn': None},\n", "# spin_zero= True, # if True, spins will be set to zero\n", "# spin_precession= False, # if True, spins will be precessing\n", "\n", "# # gwsnr package arguments\n", "# mtot_min = 2.0,\n", "# mtot_max = 184.98599853446768,\n", "# ratio_min = 0.1,\n", "# ratio_max = 1.0,\n", "# mtot_resolution = 500,\n", "# ratio_resolution = 50,\n", "# sampling_frequency = 2048.0,\n", "# waveform_approximant = 'IMRPhenomD',\n", "# minimum_frequency = 20.0,\n", "# snr_type = 'interpolation',\n", "# psds = {'L1':'aLIGO_O4_high_asd.txt','H1':'aLIGO_O4_high_asd.txt', 'V1':'AdV_asd.txt', 'K1':'KAGRA_design_asd.txt'},\n", "# ifos = ['L1', 'H1', 'V1'],\n", "# interpolator_dir = './interpolator_pickle',\n", "# gwsnr_verbose = False,\n", "# multiprocessing_verbose = True,\n", "# mtot_cut = True,\n", "\n", "# # common arguments, to generate interpolator\n", "# create_new_interpolator = dict(\n", "# redshift_distribution=dict(create_new=False, resolution=1000),\n", "# z_to_luminosity_distance=dict(create_new=False, resolution=1000),\n", "# differential_comoving_volume=dict(create_new=False, resolution=1000),\n", "# Dl_to_z=dict(create_new=False, resolution=1000),\n", "# )\n", "# )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As an example, I will change,\n", "\n", "* merger_rate_density_params's default value of **local merger rate density** ($R_0$) to $38.8\\times 10^{-9} Mpc^{-3} yr^{-1}$ (upper limit of GWTC-3). But, I am still using the default merger_rate_density function, which is 'merger_rate_density_bbh_popI_II_oguri2018'. Note that the accepted $R_0$ value in GWTC-3 is $23.9_{-8.6}^{+14.9}\\times 10^{-9} \\; Mpc^{-3} yr^{-1}$.\n", "\n", "* **source_frame_masses** to a custom function. This is similar to the internal default function, i.e. PowerLaw+Peak model. I am using `gwcosmo`'s powerlaw_gaussian prior for this example.\n", "\n", "* `gwsnr` parameters: By default, it uses 'IMRPhenomD' **waveform model** with no spin. It uses interpolation method to find the 'snr' and it is super fast. But for the example below, I am using 'IMRPhenomXPHM` with precessing spins. This is without interpolation but through inner product method. It will be slower.\n", "\n", "**Note:** All custom functions sampler should have 'size' as the only input." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "from gwcosmo import priors as p\n", "\n", "# define your custom function of mass_1_source and mass_2_source calculation\n", "# it should have 'size' as the only argument\n", "def powerlaw_peak(size):\n", " \"\"\"\n", " Function to sample mass1 and mass2 from a powerlaw with a gaussian peak\n", "\n", " Parameters\n", " ----------\n", " size : `int`\n", " Number of samples to draw\n", "\n", " Returns\n", " -------\n", " mass_1_source : `numpy.ndarray`\n", " Array of mass1 samples\n", " mass_2_source : `numpy.ndarray`\n", " Array of mass2 samples\n", " \"\"\"\n", "\n", " # below is the gwcosmo default values\n", " mminbh=4.98 # Minimum mass of the black hole (Msun)\n", " mmaxbh=86.22 # Maximum mass of the black hole (Msun) \n", " alpha=2.63 # Spectral index for the powerlaw of the primary mass distribution\n", " mu_g=33.07 # Mean of the Gaussian component in the primary mass distribution\n", " sigma_g=5.69 # Width of the Gaussian component in the primary mass distribution\n", " lambda_peak=0.10 # Fraction of the model in the Gaussian component\n", " delta_m=4.82 # Range of mass tapering on the lower end of the mass distribution\n", " beta=1.26 # Spectral index for the powerlaw of the mass ratio distribution\n", "\n", " model = p.BBH_powerlaw_gaussian(\n", " mminbh=mminbh,\n", " mmaxbh=mmaxbh,\n", " alpha=alpha,\n", " mu_g=mu_g,\n", " sigma_g=sigma_g,\n", " lambda_peak=lambda_peak,\n", " delta_m=delta_m,\n", " beta=beta,\n", " )\n", " # sample mass1 and mass2\n", " mass_1_source, mass_2_source = model.sample(Nsample=size)\n", "\n", " return (mass_1_source, mass_2_source)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Initialize the class with the custom function\n", "* changing gwrates input params" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "from ler.rates import GWRATES\n", "import numpy as np\n", "\n", "ler = GWRATES(npool=4, verbose=False,\n", " source_priors=dict(\n", " merger_rate_density='merger_rate_density_bbh_popI_II_oguri2018',\n", " source_frame_masses=powerlaw_peak,\n", " ),\n", " source_priors_params=dict(\n", " merger_rate_density=dict(\n", " R0=38.8e-09,\n", " b2=1.6,\n", " b3=2.0,\n", " b4=30\n", " ),\n", " source_frame_masses=dict(\n", " mminbh=4.98,\n", " mmaxbh=86.22,\n", " alpha=2.63,\n", " mu_g=33.07,\n", " sigma_g=5.69,\n", " lambda_peak=0.10,\n", " delta_m=4.82,\n", " beta=1.26\n", " ),\n", " ),\n", " waveform_approximant = 'IMRPhenomXPHM',\n", " snr_type='inner_product',\n", " spin_zero=False,\n", " spin_precession=True,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* since I am using inner product to calculate snr, it will take longer time to simulate the events.\n", "\n", "* You can increase the speed by allocating more CPU cores to the code. For example, if you have 8 logical cores, set npool>4" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Simulated GW params will be stored in ./ler_data/new_gw_params.json\n", "chosen batch size = 50000 with total size = 100000\n", "There will be 2 batche(s)\n", "Batch no. 1\n", "sampling gw source params...\n", "calculating snrs...\n", "solving SNR with inner product\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████████████| 40687/40687 [00:56<00:00, 721.25it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Batch no. 2\n", "sampling gw source params...\n", "calculating snrs...\n", "solving SNR with inner product\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|████████████████████████████████████████████████████████| 40735/40735 [00:55<00:00, 740.46it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "saving all gw_params in ./ler_data/new_gw_params.json...\n" ] } ], "source": [ "ler.batch_size = 50000 # you can also set the batch size at GWRATES initialization\n", "ler.gw_cbc_statistics(size=100000, resume=False, output_jsonfile = 'new_gw_params.json');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* generate detectable events\n", "* and get the rate of detectable events\n", "* You have two choice to input the generated parameters, either as json file name or as a dict" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Getting GW parameters from json file ./ler_data/new_gw_params.json...\n", "given detectability_condition == 'step_function'\n", "total GW event rate (yr^-1): 1554.5760498550699\n", "number of simulated GW detectable events: 925\n", "number of simulated all GW events: 100000\n", "storing detectable params in ./ler_data/new_gw_params_detectable.json\n" ] } ], "source": [ "# ler.gw_rate(); # this is short hand for the following\n", "rate, param_detectable = ler.gw_rate(\n", " gw_param='new_gw_params.json',\n", " snr_threshold=10.0,\n", " output_jsonfile='new_gw_params_detectable.json',\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### How to look for available model functions?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* All available names are stored as a dict in `ler` instance\n", "\n", "* the keys of this dict shows the parameter type\n", "\n", "* the values are also dict, where the keys are the model function names and the values are their input parameters" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'binary_masses_BBH_popI_II_powerlaw_gaussian': {'mminbh': 4.98,\n", " 'mmaxbh': 112.5,\n", " 'alpha': 3.78,\n", " 'mu_g': 32.27,\n", " 'sigma_g': 3.88,\n", " 'lambda_peak': 0.03,\n", " 'delta_m': 4.8,\n", " 'beta': 0.81},\n", " 'binary_masses_BBH_popIII_lognormal': {'Mc': 30.0, 'sigma': 0.3, 'beta': 1.1},\n", " 'binary_masses_BBH_primordial_lognormal': {'Mc': 30.0,\n", " 'sigma': 0.3,\n", " 'beta': 1.1},\n", " 'binary_masses_BNS_gwcosmo': {'mminns': 1.0, 'mmaxns': 3.0, 'alphans': 0.0},\n", " 'binary_masses_BNS_bimodal': {'w': 0.643,\n", " 'muL': 1.352,\n", " 'sigmaL': 0.08,\n", " 'muR': 1.88,\n", " 'sigmaR': 0.3,\n", " 'mmin': 1.0,\n", " 'mmax': 2.3}}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# let's look at one of the dict key\n", "ler.available_gw_prior_list_and_its_params['source_frame_masses']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* for looking at the choosen models and its input parameters" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'merger_rate_density': 'merger_rate_density_bbh_popI_II_oguri2018', 'source_frame_masses': , 'zs': 'sample_source_redshift', 'geocent_time': 'sampler_uniform', 'ra': 'sampler_uniform', 'dec': 'sampler_cosine', 'phase': 'sampler_uniform', 'psi': 'sampler_uniform', 'theta_jn': 'sampler_sine', 'a_1': 'sampler_uniform', 'a_2': 'sampler_uniform', 'tilt_1': 'sampler_sine', 'tilt_2': 'sampler_sine', 'phi_12': 'sampler_uniform', 'phi_jl': 'sampler_uniform'}\n", "{'merger_rate_density': {'R0': 3.88e-08, 'b2': 1.6, 'b3': 2.0, 'b4': 30}, 'source_frame_masses': {'mminbh': 4.98, 'mmaxbh': 86.22, 'alpha': 2.63, 'mu_g': 33.07, 'sigma_g': 5.69, 'lambda_peak': 0.1, 'delta_m': 4.82, 'beta': 1.26}, 'zs': None, 'geocent_time': {'min_': 1238166018, 'max_': 1269702018}, 'ra': {'min_': 0.0, 'max_': 6.283185307179586}, 'dec': None, 'phase': {'min_': 0.0, 'max_': 6.283185307179586}, 'psi': {'min_': 0.0, 'max_': 3.141592653589793}, 'theta_jn': None, 'a_1': {'min_': 0.0, 'max_': 0.8}, 'a_2': {'min_': 0.0, 'max_': 0.8}, 'tilt_1': None, 'tilt_2': None, 'phi_12': {'min_': 0, 'max_': 6.283185307179586}, 'phi_jl': {'min_': 0, 'max_': 6.283185307179586}}\n" ] } ], "source": [ "print(ler.gw_param_samplers)\n", "print(ler.gw_param_samplers_params)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using internal model functions\n", "\n", "### Mass distribution of BBH (mass-1, larger mass only)\n", "\n", "* compare the default mass distribution with the custom mass distribution" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "# calling the default mass distribution model\n", "mass_1_source, mass_2_source = ler.binary_masses_BBH_popI_II_powerlaw_gaussian(size=10000)\n", "default_model_dict = dict(mass_1_source=mass_1_source)\n", "\n", "# calling the custom mass distribution model\n", "mass_1_source, mass_2_source = powerlaw_peak(size=10000)\n", "custom_model_dict = dict(mass_1_source=mass_1_source)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* let's do a comparision plot between you custom model and the default model" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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NCXphenkF+czc/BMWvu0rpFrXNrSkpiVSMxvMaQXptdq0pKTk0NaWhrR0dG0cNH/P6Jxkz4tTZxqtVKcbOuIqwtxzX8aWl9ftAEBtvOfPu2ScwrRFLX2aU2ngE41tnX070ingE5OJUa5ubmMGTMGT09PQkJCmDNnTrkyhYWFPPPMM4SGhuLh4UG/fv3YtGkTYLs9Utqycv3116MoCps2beL8+fPcfffdhIaG4u7uTpcuXfj888/LnDciIqLcbaTu3bszY8aMCmMtXZm4R48eKIrCtddeW2G5TZs2oSgKa9eupUePHphMJq6//nrS0tL48ccfiYqKwsfHhzFjxpB3yR9khYWFTJgwgcDAQNzc3Bg0aBA7duwoc+7Vq1fTvn17TCYT1113HcePHy93/d9//53BgwdjMpkICwtjwoQJ5ObmVhhrUyVJSxNXfO4calERaDTogwJddt7S1hbryZMuO6cQov6YMmUKv/zyCytXruSnn35i06ZN7N69u0yZ8ePHs3XrVr744gv+/PNPRo0axbBhwzhy5AgDBgwgPj4egOXLl5OcnMyAAQMoKCigV69e/PDDD+zfv59HHnmE++67j+3btzsda+mx69evJzk5mW+++eay5WfMmMH8+fPZsmULJ0+e5K677mLu3LksXbqUVatWsWHDBt577z17+WeffZbly5ezZMkSdu/eTdu2bYmOjubChQsAnDx5kpEjR3LrrbcSGxvLQw89xLRp08pcMyEhgWHDhnHHHXfw559/smzZMn7//XfGjx/v9OdujCRpaeKKS24N6YKCUPSu64FS2q9FPXnKZecUQtQPOTk5fPTRR8yePZsbbriBLl26sGTJEoqLi+1lkpKSWLRoEV999RWDBw+mTZs2PPPMMwwaNIhFixZhMBgIDLT9oeTv709wcDAGg4HQ0FCeeeYZunfvTuvWrXnyyScZNmwYX375pdPxNm/eHICAgACCg4Pxv8Ikmq+++ioDBw6kR48ejBs3jl9++YUPPviAHj16MHjwYG6//XZ7i1Fubi4ffPABb731FjfeeCOdOnVi4cKFmEwmPvroIwA++OAD2rRpw5w5c+jQoQP33HMP999/f5lrzpw5k3vuuYeJEyfSrl07BgwYwLvvvsv//vc/CgoKnP7sjY30aWniXN2fpZShpKVFPSVJixCNTUJCAmazmX79+tn3+fv706FD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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "from ler.utils import plots as lerplt\n", "\n", "# let's do a comparision plot between you custom model and the default model\n", "plt.figure(figsize=(6, 4))\n", "lerplt.param_plot(\n", " param_name=\"mass_1_source\", \n", " param_dict=custom_model_dict, # or the json file name\n", " plot_label='custom model',\n", ");\n", "lerplt.param_plot(\n", " param_name=\"mass_1_source\", \n", " param_dict=default_model_dict,\n", " plot_label='default model',\n", ");\n", "plt.xlabel(r'source $m_1$ ($M_{\\odot}$)')\n", "plt.ylabel(r'$p(source mass_1)$')\n", "plt.xlim(0,60)\n", "plt.grid(alpha=0.4)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Generating particular number of detectable events\n", "\n", "* this is particularly useful when you want only the detectable events to be saved in the json file\n", "\n", "* detectable event rates will be calculated at each batches. Subsequent batch will consider the previous batch's detectable events. So, the rates will become more accurate as the iterations increases and will converge to a stable value at higher samples. \n", "\n", "* you can resume the rate calculation from the last saved batch." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "from ler.rates import GWRATES\n", "ler = GWRATES(\n", " npool=6,\n", " verbose=False,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* sampling till desired number of detectable events are found" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "collected number of detectable events = 0\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 386\n", "total number of events = 100000\n", "total rate (yr^-1): 399.5983808953179\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 788\n", "total number of events = 200000\n", "total rate (yr^-1): 407.8802126237183\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 1201\n", "total number of events = 300000\n", "total rate (yr^-1): 414.43666274203525\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 1670\n", "total number of events = 400000\n", "total rate (yr^-1): 432.2080933258944\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 2086\n", "total number of events = 500000\n", "total rate (yr^-1): 431.89752463607937\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 2506\n", "total number of events = 600000\n", "total rate (yr^-1): 432.38063148690276\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 2921\n", "total number of events = 700000\n", "total rate (yr^-1): 431.98625854745507\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 3352\n", "total number of events = 800000\n", "total rate (yr^-1): 433.7609367749695\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 3790\n", "total number of events = 900000\n", "total rate (yr^-1): 435.9464201477418\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 4189\n", "total number of events = 1000000\n", "total rate (yr^-1): 433.6574138783644\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 4627\n", "total number of events = 1100000\n", "total rate (yr^-1): 435.4549478103241\n", "given detectability_condition == 'step_function'\n", "collected number of detectable events = 5065\n", "total number of events = 1200000\n", "total rate (yr^-1): 436.95289275362376\n", "stored detectable gw params in ./ler_data/gw_params_n_detectable.json\n", "stored meta data in ./ler_data/meta_gw.json\n", "\n", " trmming final result to size=5000\n", "collected number of detectable events = 5000\n", "total number of events = 1184600.0\n", "total GW event rate (yr^-1): 436.95296557911803\n" ] } ], "source": [ "n_size_param = ler.selecting_n_gw_detectable_events(\n", " size=5000, \n", " snr_threshold=10.0,\n", " batch_size=100000,\n", " resume=False,\n", " output_jsonfile='gw_params_n_detectable.json',\n", " meta_data_file=\"meta_gw.json\",\n", " )" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['gwrates_params', 'gw_param', 'gw_param_detectable', 'n_gw_detectable_events'])" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ler.json_file_names.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Important Note**: At each iteration, rate is calculated using the cummulatively increasing number of events. It become stable at around 2 million events. This is the number of events that is required to get a stable rate.\n", "\n", "* Now get the sampled (detectable) events." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dict_keys(['zs', 'geocent_time', 'ra', 'dec', 'phase', 'psi', 'theta_jn', 'luminosity_distance', 'mass_1_source', 'mass_2_source', 'mass_1', 'mass_2', 'L1', 'H1', 'V1', 'snr_net'])\n", "size of each parameters=5000\n" ] } ], "source": [ "print(n_size_param.keys())\n", "print(f\"size of each parameters={len(n_size_param['zs'])}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* let's see the meta file" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "dict_keys(['events_total', 'detectable_events', 'total_rate'])\n" ] } ], "source": [ "from ler.utils import load_json\n", "\n", "meta_data = load_json('ler_data/meta_gw.json')\n", "print(meta_data.keys())" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "# plot the rate vs sampling size\n", "plt.figure(figsize=(4,4))\n", "plt.plot(meta_data['events_total'], meta_data['total_rate'], 'o-')\n", "plt.xlabel('Sampling size')\n", "plt.ylabel('Rate (per year)')\n", "plt.title('Rate vs Sampling size')\n", "plt.grid(alpha=0.4)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* the rate will converge to a stable value at higher samples." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using custom detection criteria\n", "\n", "* I leverage the ANN (Artificial Neural Network) based SNR calculator from gwsnr. It can predict SNR>8 with 99.9% accuracy for the astrophysical parameters. But to make it 100% accurate, I will recalculate SNR some of the events using inner product method. GWRATES can do this automatically. \n", "\n", "* I will test two cases using: \n", " * pdet (probability of detection) with ANN\n", " * SNR with ANN." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "from ler.rates import LeR\n", "from gwsnr import GWSNR\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* pdet only calculation" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "psds not given. Choosing bilby's default psds\n", "Intel processor has trouble allocating memory when the data is huge. So, by default for IMRPhenomXPHM, duration_max = 64.0. Otherwise, set to some max value like duration_max = 600.0 (10 mins)\n", "Interpolator will be generated for L1 detector at ./interpolator_pickle/L1/partialSNR_dict_1.pickle\n", "Interpolator will be generated for H1 detector at ./interpolator_pickle/H1/partialSNR_dict_1.pickle\n", "Interpolator will be generated for V1 detector at ./interpolator_pickle/V1/partialSNR_dict_1.pickle\n", "Please be patient while the interpolator is generated\n", "Generating interpolator for ['L1', 'H1', 'V1'] detectors\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "interpolation for each mass_ratios: 100%|███████████████████████████| 50/50 [03:17<00:00, 3.96s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Chosen GWSNR initialization parameters:\n", "\n", "npool: 4\n", "snr type: ann\n", "waveform approximant: IMRPhenomXPHM\n", "sampling frequency: 2048.0\n", "minimum frequency (fmin): 20.0\n", "mtot=mass1+mass2\n", "min(mtot): 2.0\n", "max(mtot) (with the given fmin=20.0): 184.98599853446768\n", "detectors: ['L1', 'H1', 'V1']\n", "psds: [PowerSpectralDensity(psd_file='None', asd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/aLIGO_O4_high_asd.txt'), PowerSpectralDensity(psd_file='None', asd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/aLIGO_O4_high_asd.txt'), PowerSpectralDensity(psd_file='None', asd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/AdV_asd.txt')]\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "snr_ = GWSNR(gwsnr_verbose=True, pdet=True, snr_type='ann', waveform_approximant='IMRPhenomXPHM')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Pdet calculator test" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████████████████████████████████| 3/3 [00:03<00:00, 1.05s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "pdet: {'L1': array([0, 0, 1, 0]), 'H1': array([0, 0, 0, 0]), 'V1': array([0, 0, 0, 0]), 'pdet_net': array([1, 0, 1, 0])}\n", "inner_product_snr: {'L1': array([ 7.4441411 , 5.85368923, 10.64502665, 0. ]), 'H1': array([4.73471203, 3.72313373, 6.77057769, 0. ]), 'V1': array([2.23257635, 1.73563896, 3.21070702, 0. ]), 'snr_net': array([ 9.10039185, 7.15121283, 13.01790898, 0. ])}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "# initialization pdet calculator\n", "pdet_calculator = snr_.snr\n", "mass_1 = np.array([5, 10.,50.,200.])\n", "ratio = np.array([1, 0.8,0.5,0.2])\n", "luminosity_distance = np.array([1000, 2000, 3000, 4000])\n", "# test\n", "pdet = pdet_calculator(\n", " gw_param_dict=dict(\n", " mass_1=mass_1,\n", " mass_2=mass_1*ratio,\n", " luminosity_distance=luminosity_distance,\n", " )\n", ")\n", "inner_product_snr = snr_.compute_bilby_snr(\n", " mass_1=mass_1,\n", " mass_2=mass_1*ratio,\n", " luminosity_distance=luminosity_distance,\n", ")\n", "\n", "print(f\"pdet: {pdet}\")\n", "print(f\"inner_product_snr: {inner_product_snr}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Below is an example of general case of initialising with any type of pdet calculator.\n", "\n", "* Refer to the [documentation](https://ler.readthedocs.io/en/latest/examples/rates/grb%20detection%20rate.html) example for extra details, where I have used pdet for GRB (gamma-ray-burst) detection." ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "from ler.rates import GWRATES\n", "\n", "ler = GWRATES(verbose=False, pdet_finder=pdet_calculator, spin_zero=False,\n", " spin_precession=True)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Simulated GW params will be stored in ./ler_data/gw_param.json\n", "chosen batch size = 50000 with total size = 100000\n", "There will be 2 batche(s)\n", "Batch no. 1\n", "sampling gw source params...\n", "calculating pdet...\n", "Batch no. 2\n", "sampling gw source params...\n", "calculating pdet...\n", "saving all gw_params in ./ler_data/gw_param.json...\n" ] } ], "source": [ "param = ler.gw_cbc_statistics();" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Getting GW parameters from json file ./ler_data/gw_param.json...\n", "given detectability_condition == 'pdet'\n", "total GW event rate (yr^-1): 477.24055334907143\n", "number of simulated GW detectable events: 461\n", "number of simulated all GW events: 100000\n", "storing detectable params in ./ler_data/gw_param_detectable.json\n" ] } ], "source": [ "_, param_detectable = ler.gw_rate(detectability_condition='pdet')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SNR (with ANN) + SNR recalculation (inner product)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "from ler.rates import GWRATES\n", "\n", "# ler initialization with gwsnr arguments\n", "ler = GWRATES(npool=6, verbose=False, snr_type='ann', waveform_approximant='IMRPhenomXPHM', spin_zero=False,\n", " spin_precession=True)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "collected number of detectable events = 0\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████████████████████████████| 1674/1674 [00:06<00:00, 257.10it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "given detectability_condition == 'step_function'\n", "collected number of detectable events = 212\n", "total number of events = 50000\n", "total rate (yr^-1): 438.9370816052197\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████████████████████████████| 1544/1544 [00:05<00:00, 281.79it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "given detectability_condition == 'step_function'\n", "collected number of detectable events = 444\n", "total number of events = 100000\n", "total rate (yr^-1): 459.64166092622065\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████████████████████████████████████████████████████| 1609/1609 [00:05<00:00, 292.65it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "given detectability_condition == 'step_function'\n", "collected number of detectable events = 655\n", "total number of events = 150000\n", "total rate (yr^-1): 452.04998184185365\n", "stored detectable gw params in ./ler_data/gw_params_n_detectable_ann.json\n", "stored meta data in ./ler_data/meta_gw_ann.json\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "param = ler.selecting_n_gw_detectable_events(\n", " size=500, \n", " snr_threshold=10.0,\n", " batch_size=50000,\n", " resume=True,\n", " trim_to_size=False,\n", " output_jsonfile='gw_params_n_detectable_ann.json',\n", " meta_data_file=\"meta_gw_ann.json\",\n", " snr_recalculation=True,\n", " snr_threshold_recalculation=[4,20], # it will recalculate SNR for events with (SNR_ANN > 4) and (SNR_ANN < 20)\n", " )" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "# # Uncomment the following to check the accuracy of the above method.\n", "# # with the `inner product`\n", "\n", "# from ler.rates import GWRATES\n", "# # class initialization\n", "# ler = GWRATES(npool=6, verbose=False, snr_type='inner_product', waveform_approximant='IMRPhenomXPHM')\n", "# # event sampling\n", "# # \n", "# param = ler.selecting_n_gw_detectable_events(\n", "# size=500, \n", "# snr_threshold=10.0,\n", "# batch_size=50000,\n", "# resume=True,\n", "# trim_to_size=False,\n", "# output_jsonfile='gw_params_n_detectable_inner_product.json',\n", "# meta_data_file=\"meta_gw_inner_product.json\",\n", "# snr_recalculation=True,\n", "# snr_threshold_recalculation=[4,20], # it will recalculate SNR for events with (SNR_ANN > 4) and (SNR_ANN < 20)\n", "# )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* close enough\n", "* For more matching results, you can increase the number of events to 1,000,000 or more." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## BNS (Binary Neutron Star) example" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* All you need is to change is `event_type` in class initialization to 'BNS'.\n", "* But in this example, I will also change the detector network to ['CE', 'ET']. These are future 3rd generation detectors. Since, they are more sensitive, I will change the redshift range to 0-20 (z_max=20).\n", "* The default mass distribution model has a mass-cutoff of 2.3 Msun. So, the maximum possible redshifted total mass is (2.3+2.3)*(1+z_max)=96.6. This allows, gwsnr to have a good interpolation for the snr values.\n", "* Difference in the models for BNS and BBH are:\n", " * mass distribution model: bimodal distribution. Refer to [Will M. Farr et al. 2020](https://arxiv.org/pdf/2005.00032.pdf) Eqn. 6\n", " * merger rate density model parameter: local merger rate density value from [GWTC-3 catalog, Section IV A](https://journals.aps.org/prx/pdf/10.1103/PhysRevX.13.011048)." ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "z_to_luminosity_distance interpolator will be generated at ./interpolator_pickle/z_to_luminosity_distance/z_to_luminosity_distance_1.pickle\n", "differential_comoving_volume interpolator will be generated at ./interpolator_pickle/differential_comoving_volume/differential_comoving_volume_1.pickle\n", "merger_rate_density interpolator will be generated at ./interpolator_pickle/merger_rate_density/merger_rate_density_2.pickle\n", "binary_masses_BNS_bimodal interpolator will be generated at ./interpolator_pickle/binary_masses_BNS_bimodal/binary_masses_BNS_bimodal_0.pickle\n", "Interpolator will be generated for CE detector at ./interpolator_pickle/CE/partialSNR_dict_0.pickle\n", "Interpolator will be generated for ET1 detector at ./interpolator_pickle/ET1/partialSNR_dict_0.pickle\n", "Interpolator will be generated for ET2 detector at ./interpolator_pickle/ET2/partialSNR_dict_0.pickle\n", "Interpolator will be generated for ET3 detector at ./interpolator_pickle/ET3/partialSNR_dict_0.pickle\n", "Please be patient while the interpolator is generated\n", "Generating interpolator for ['CE', 'ET1', 'ET2', 'ET3'] detectors\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "interpolation for each mass_ratios: 100%|███████████████████████████| 50/50 [03:04<00:00, 3.69s/it]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "\n", " GWRATES set up params:\n", "npool = 4,\n", "z_min = 0,\n", "z_max = 20,\n", "event_type = 'BNS',\n", "size = 100000,\n", "batch_size = 50000,\n", "cosmology = LambdaCDM(H0=70.0 km / (Mpc s), Om0=0.3, Ode0=0.7, Tcmb0=0.0 K, Neff=3.04, m_nu=None, Ob0=None),\n", "snr_finder = >,\n", "json_file_names = {'gwrates_params': 'gwrates_params.json', 'gw_param': 'gw_param.json', 'gw_param_detectable': 'gw_param_detectable.json'},\n", "interpolator_directory = ./interpolator_pickle,\n", "ler_directory = ./ler_data,\n", "\n", " GWRATES also takes CBCSourceParameterDistribution params as kwargs, as follows:\n", "source_priors = {'merger_rate_density': 'merger_rate_density_bbh_popI_II_oguri2018', 'source_frame_masses': 'binary_masses_BNS_bimodal', 'zs': 'sample_source_redshift', 'geocent_time': 'sampler_uniform', 'ra': 'sampler_uniform', 'dec': 'sampler_cosine', 'phase': 'sampler_uniform', 'psi': 'sampler_uniform', 'theta_jn': 'sampler_sine'},\n", "source_priors_params = {'merger_rate_density': {'R0': 1.0550000000000001e-07, 'b2': 1.6, 'b3': 2.0, 'b4': 30}, 'source_frame_masses': {'w': 0.643, 'muL': 1.352, 'sigmaL': 0.08, 'muR': 1.88, 'sigmaR': 0.3, 'mmin': 1.0, 'mmax': 2.3}, 'zs': None, 'geocent_time': {'min_': 1238166018, 'max_': 1269702018}, 'ra': {'min_': 0.0, 'max_': 6.283185307179586}, 'dec': None, 'phase': {'min_': 0.0, 'max_': 6.283185307179586}, 'psi': {'min_': 0.0, 'max_': 3.141592653589793}, 'theta_jn': None},\n", "spin_zero = True,\n", "spin_precession = False,\n", "create_new_interpolator = False,\n", "\n", " LeR also takes gwsnr.GWSNR params as kwargs, as follows:\n", "mtot_min = 2.0,\n", "mtot_max = 96.6,\n", "ratio_min = 0.1,\n", "ratio_max = 1.0,\n", "mtot_resolution = 500,\n", "ratio_resolution = 50,\n", "sampling_frequency = 2048.0,\n", "waveform_approximant = 'IMRPhenomD',\n", "minimum_frequency = 20.0,\n", "snr_type = 'interpolation',\n", "psds = [PowerSpectralDensity(psd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/CE_psd.txt', asd_file='None'), PowerSpectralDensity(psd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/ET_D_psd.txt', asd_file='None'), PowerSpectralDensity(psd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/ET_D_psd.txt', asd_file='None'), PowerSpectralDensity(psd_file='/Users/phurailatpamhemantakumar/anaconda3/envs/ler/lib/python3.10/site-packages/bilby/gw/detector/noise_curves/ET_D_psd.txt', asd_file='None')],\n", "ifos = ['CE', 'ET'],\n", "interpolator_dir = './interpolator_pickle',\n", "create_new_interpolator = False,\n", "gwsnr_verbose = False,\n", "multiprocessing_verbose = True,\n", "mtot_cut = True,\n", "\n", " For reference, the chosen source parameters are listed below:\n", "merger_rate_density = 'merger_rate_density_bbh_popI_II_oguri2018'\n", "merger_rate_density_params = {'R0': 1.0550000000000001e-07, 'b2': 1.6, 'b3': 2.0, 'b4': 30}\n", "source_frame_masses = 'binary_masses_BNS_bimodal'\n", "source_frame_masses_params = {'w': 0.643, 'muL': 1.352, 'sigmaL': 0.08, 'muR': 1.88, 'sigmaR': 0.3, 'mmin': 1.0, 'mmax': 2.3}\n", "geocent_time = 'sampler_uniform'\n", "geocent_time_params = {'min_': 1238166018, 'max_': 1269702018}\n", "ra = 'sampler_uniform'\n", "ra_params = {'min_': 0.0, 'max_': 6.283185307179586}\n", "dec = 'sampler_cosine'\n", "dec_params = None\n", "phase = 'sampler_uniform'\n", "phase_params = {'min_': 0.0, 'max_': 6.283185307179586}\n", "psi = 'sampler_uniform'\n", "psi_params = {'min_': 0.0, 'max_': 3.141592653589793}\n", "theta_jn = 'sampler_sine'\n", "theta_jn_params = None\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "from ler.rates import GWRATES\n", "\n", "# z_max = 20. So maximum redshifted total mass is 2.3*(1+z_max) * 2 = 96.6\n", "ler = GWRATES(event_type='BNS', ifos=['CE', 'ET'], z_min=0, z_max=20, mtot_max=96.6, verbose=True)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Simulated GW params will be stored in ./ler_data/gw_param.json\n", "chosen batch size = 100000 with total size = 500000\n", "There will be 5 batche(s)\n", "Batch no. 1\n", "sampling gw source params...\n", "calculating snrs...\n", "Batch no. 2\n", "sampling gw source params...\n", "calculating snrs...\n", "Batch no. 3\n", "sampling gw source params...\n", "calculating snrs...\n", "Batch no. 4\n", "sampling gw source params...\n", "calculating snrs...\n", "Batch no. 5\n", "sampling gw source params...\n", "calculating snrs...\n", "saving all gw_params in ./ler_data/gw_param.json...\n" ] } ], "source": [ "ler.batch_size = 100000\n", "param = ler.gw_cbc_statistics(size=500000, resume=False, save_batch=False)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Getting GW parameters from json file ./ler_data/gw_param.json...\n", "given detectability_condition == 'step_function'\n", "total GW event rate (yr^-1): 165597.07771035784\n", "number of simulated GW detectable events: 180277\n", "number of simulated all GW events: 500000\n", "storing detectable params in ./ler_data/gw_param_detectable.json\n" ] } ], "source": [ "ler.gw_rate();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Let's plot the redshift and mass distribution" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "# ler.utils has a function for plotting histograms and KDEs\n", "from ler.utils import plots as lerplt\n", "\n", "params = ler.gw_param\n", "params_detectable = ler.gw_param_detectable" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhwAAAF2CAYAAAAleUHdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABq9ElEQVR4nO3dd3wUZf7A8c/sbnZTSO8hFQi9VwERVBTvFEXPegiI7SzY+FkOPeGsKJbDU0+UszfsWE5RREFqgITQOwkJpBFI79md3x+TXRJIIGVbku/79cprZmdnnvk+SWC/eeYpiqqqKkIIIYQQDqRzdQBCCCGE6Pgk4RBCCCGEw0nCIYQQQgiHk4RDCCGEEA4nCYcQQgghHE4SDiGEEEI4nCQcQgghhHA4g6sDcDWLxUJWVha+vr4oiuLqcIQQQoh2Q1VVSkpKiIqKQqc7cxtGp084srKyiImJcXUYQgghRLuVmZlJdHT0Gc/p9AmHr68vAIcPHyYgIMC1wTiRxWIhMzOTmJiYs2alHYnUW+rdGUi9pd7OUlxcTExMjO2z9Ew6fcJhfYzi5+eHn5+fi6NxHovFgq+vL35+fp3uH6bUW+rd0Um9pd7O1pwuCZ3nJyKEEEIIl5GEQwghhBAOJwmHEEIIIRyu0/fhEEKIjsBsNlNTUwNoz/TNZjOVlZWdri+D1Nv+9TYajXYpVxIOIYRox1RVJScnh8LCwgbHzGYz6enpnWp+Iam3Y+qt0+lISEjAaDS2qRxJOIQQoh2zJhthYWF4e3ujKAqqqlJTU4OHh0en++CVetu33tbJMbOzs4mNjW1T+ZJwCCFEO2U2m23JRnBwsO24qqrodDqMRmOn++CVetu/3qGhoWRlZVFbW4uHh0ery+k8D7mEEKKDsfbZ8Pb2dnEkoiOzPkoxm81tKkcSDiGEaOc601/zwvns9fslCYcQQgghHE76cLR3NZWQ8j6krwYPH+j/F0i8COQvHiGEEG5EWjjas6Kj8PZF8NPDsPt72LYEPrkGvr0bzLWujk4IIVrNOsQzNTUVgJUrV6IoSoPhv6fS6XR89913LbpPfHw8CxcubH2gotmkhaO9qiqBT66F3B3gHQxj7oXSXNj4FqR+DIoOrnjN1VEKIYQQgCQc7dcv/9CSDZ8wuPVXCIzTjseNhc+nwZYPIWE8DLzGtXEKIYQQyCOV9ilzIyS/p+1f8+7JZAOgz2Vw3sPa/rJHoKLQ2dEJIVxIVVXKq2sprzbXbZ3zpapqi+JctmwZ5557LgEBAQQHB3PZZZdx8OBBu34v5s2bR2RkJNu2bQMgLy+PyZMn4+XlRUJCAh9//PFp1xQWFnLrrbcSGhqKn58fF1xwAVu3brVrXJ2VtHC0R78/o20HT4X4c09//7wHYec3kL8XVr8IFz/t3PiEEC5TUWOm37xfnH7fXU9OwtvY/I+UsrIyZs+ezcCBAyktLWXu3LlceeWVpKamtnndDlVVuffee/nhhx9YvXo1PXr0AOCmm24iKyuL33//HQ8PD+69917y8vIaXHvNNdfg5eXFTz/9hL+/P2+++SYXXngh+/btIygoqE1xdXaScLQ3R5Lh0EpQ9DD+kcbP0XtoScYn18Cmt+Hc2eAt/1CEEO7jL3/5S4PX77zzDqGhoezatYv+/fu3utza2lqmTZvGli1bWLNmDV27dgVg3759/PTTT2zcuJERI0YA8Pbbb9OnTx/btWvWrGHjxo3k5eVhMpkAePHFF1m6dClffvklt99+e6vjEpJwtD9rXta2A69r+CjlVIkXQcRAyNkGm/4L4x92TnxCCJfy8tCz84mLqa6uwWh03poiXh76Fp2/f/9+5s6dS1JSEvn5+VgsFgAyMjLalHA89NBDeHp6smHDBkJCQmzHd+/ejcFgYNiwYbZjvXv3JiAgwPZ669atlJaWNpgmHqCiosLuj3s6I0k42pOSXNj7k7Y/9t4zn6soMPY++OoWSFqkjWLx8HR8jEIIl1IUBW+jAQMWjEaD285COnnyZOLi4li8eDFRUVFYLBb69+9PdXV1m8q98MIL+fzzz/n555+ZOnVqi64tLS0lMjKSlStXnvZe/cREtI4kHO3JtiWgmiF6BIT1Ofv5fafA8rlQfBT2/gj9r3J4iEIIcTbHjx9n7969LF68mHHjxgHa4wx7uOyyy7jiiiuYOnUqer2e66+/HtBaM2pra0lOTrY9Utm7d2+DeT2GDh1KTk4OBoOB+Ph4u8QjTpJRKu2FqsKWj7T9IdOad43eAIP/qu1brxVCCBcLDAwkODiYt956iwMHDvDbb78xe/Zsu5V/5ZVX8uGHHzJz5ky+/PJLAHr16sUll1zC3/72N5KSkkhOTubWW2/Fy8vLdt3EiRMZPXo0U6ZM4ZdffiE9PZ1169bx2GOPsXnzZrvF11lJwtFe5GyH/H1g8IJ+Vzb/OmvCcfA3KDrimNiEEKIFdDodS5YsITk5mf79+/PAAw/wwgsv2PUeV199Ne+//z7Tpk3j66+/BuDdd98lKiqK8ePHc9VVV3H77bcTFhZmu0ZRFH788UfOO+88Zs6cSc+ePbn++us5fPgw4eHhdo2vM1LUlg6e7mCKi4vx9/enoKDAvZ/R/fYM/LEAel8G158+dvyM3r0UDq+Bi57U+nUAFouFjIwMYmNj2zwErT2Reku9O5LKykrS0tJISEjA0/NkHy1VVamursZoNLptHw5HkHo7pt5N/Z7Byc/QoqIi/Pz8zlhOx/sX2FHt/l7b9rm85df2r2sR2dWyNQaEEEIIe5GEoz3I3w/HdoPOAD0ntfz63pMBBY5u1hZ8E0IIIZxMEo72YN8ybZtwHngFtPx633CIPUfbt7aUCCGEEE4kCUd7cPA3bdtjYuvLsD6K2S2PVYQQQjifJBzurqYSDq/T9rtf0Ppy+kzWtofXQfmJtsclhBBCtIAkHO4uYz3UVoJvJIT2bn05ATEQ1g9QT7aYCCGEEE4iCYe7O/S7tu12vjZdeVv0uFDbHljRtnKEEEKIFpKEw91ZWyO6n9/2sqx9QA78Cqql7eUJIYQQzSQJhzsrP6HNMArQbULby4s9Bzx8oCwPcna0vTwhhLCjCRMmcP/997s6jFa76aabmDJlyhnPsUcdFUVh6dKlLbomPj6ehQsXtum+bSUJhzvLTNK2wYnQJezM5zaHwQTdxmv7B5a3vTwhhHCh9957zyEzRLf3xMddScLhzjI2aNvYUfYrs26ki5K2yn5lCiGEEGchCYc7syUco+1XZsJ52vbIJpTaKvuVK4QQLVBWVsb06dPp0qULkZGRvPTSS6edU1VVxYMPPkjXrl3x8fFh1KhRrFy5EoCVK1cyc+ZMioqKUBQFRVH45z//edbrrNauXcuECRPw9vYmMDCQSZMmUVBQwE033cSqVat45ZVXbOWmp6djNpu55ZZbSEhIwMvLi169evHKK680WrcnnniC0NBQ/Pz8uOOOO6iurm7y+9CcWM9m3rx5xMfHs23bNgDy8vKYPHkyXl5eJCQk8PHHp6+/VVhYyK233mqL84ILLmDr1q0tum9LGRxaumi9mkrIStH27ZlwhPQEnzCUsjyM+TugW6L9yhZCuJ6qQnUZVFcDNW0f3dZcHt4tutdDDz3EqlWr+PbbbwkLC+PRRx8lJSWFwYMH286ZNWsWu3btYsmSJURFRfHNN99wySWXsH37dsaMGcPChQuZO3cue/fuBcDHx8d23e7duxu9LjExkdTUVC688EJuvvlmXnnlFQwGA7///jtms5lXXnmFffv20b9/f5588kkAQkNDsVgsREdH88UXXxAcHMy6deu4/fbbiYyM5Nprr7XFvGLFCjw9PVm5ciXp6enMnDmT4OBgnnnmmUa/D2eqY2Limf9/VlWVe++9lx9++IEVK1bQp08fQOtLkpWVxe+//46Hhwf33nsveXl5Da695ppr8PLy4qeffsLf358333yTCy+8kH379hEUFNTsn2NLSMLhrrJTwVwN3iEQ1M1+5SoKxJ8LO7/GM2cT0IKl7oUQ7q+mHGV+V0zOvu+jWWD0adappaWlvP3223z00UdceKE2XP/9998nOjradk5GRgbvvvsuGRkZREVFAfDggw+ybNky3n33XZ599ln8/f1RFIWIiAhA+wA+cOAA77333hmvW7BgAcOHD+c///mP7X79+vWz7RuNRry9vW3lAuj1ep544gnb64SEBNavX8/nn3/eIOEwGo288847eHt7069fP5588kkeeughnnrqqdNWLG5OHZtSW1vLjTfeyJYtW1i9ejWhoaEA7Nu3j59++omNGzcyYsQIAN5++21bMgKwZs0aNm7cSF5eHiaT9pvy4osvsnTpUr788ktuv/32Ju/bFpJwuKuM9do29hz7/4XSIOEQQgjnOnjwINXV1YwadbJ/WlBQEL169bK93r59O2azmZ49eza4tqqqiuDg4CbL3rlz51mvS01N5Zprrmlx3K+//jrvvPMOGRkZVFRUUF1d3aBFBmDQoEF4e3vbXo8ePZrS0lIyMzOJi4trcG5r6wjwwAMPYDKZ2LBhA8HBwbbHNrt378ZgMDBs2DDbub17927QuXbr1q2Ulpaedo+KigoOHjx41u9Da0nC4a4y65IB66Jr9lTXj8MzbxtqbSUYvc9ygRCi3fDwRp1zlOrqaoxGI4ozH6nYUWlpKXq9nuTkZPR6fYP3unTp0qbrvLy8WhzPkiVLePDBB3nppZcYPXo0vr6+vPDCCyQlJbW4rJbE2pSLLrqITz/9lJ9//pm//vWvLb5vZGRko31FHDHqx8otE47XX3+dF154gZycHAYN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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# sample source redshifts (source frame)\n", "zs = params['zs']\n", "zs_detectable = params_detectable['zs']\n", "\n", "plt.figure(figsize=(6, 4))\n", "lerplt.param_plot(\n", " param_name=\"zs\", \n", " param_dict=params, # or the json file name\n", " plot_label='all',\n", " histogram=False,\n", ");\n", "lerplt.param_plot(\n", " param_name=\"zs\", \n", " param_dict=params_detectable,\n", " plot_label='detectable',\n", " histogram=False,\n", ");\n", "plt.xlabel(r'source redshift ($z_s$)')\n", "plt.ylabel(r'$p(z_s)$')\n", "plt.xlim(0,15)\n", "plt.grid(alpha=0.4)\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* From this result, it should be known that you could set z_max lower (as well as mtot_max).\n", "\n", "* now, let's see source mass_distribution (source frame)." ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "image/png": "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SXFqXM7Wlnp/8803SnBwsFJaWuqaoFygLfV+5plnlL59+7Y499JLLym9e/d2YmTOVVxcrADKunXrzvicWbNmKZdddlmLc+PGjVP+/Oc/Ozs8p2lLvU/V2NioGAwG5Z133nFiZM7V1no3NjYqEydOVN544w1l3rx5ypVXXumaAM+iS7ZEtNeWLVuYNm1ai3MzZsxgy5YtborIPWz709t2Oe3OlixZwuHDh3nkkUfcHYrLfPHFF4wZM4ann36a3r17M3DgQO69917q6urcHZpTTZgwgby8PFauXImiKBQVFbFs2TIuvfRSd4fWYZWVlQBn/V3tjn/X2lLvU9XW1mI2m7v037W21vtf//oXUVFR3Hzzza4Iq0265S6epyosLKRXr14tzvXq1Quj0UhdXR1+fn5uisy1/v3vf1NdXc2sWbPcHYpTHThwgAceeIANGzbg5dUjfsQBOHz4MBs3bsTX15fly5dz4sQJbrvtNkpLS1myZIm7w3Oa8847j/fff5/Zs2dTX19PY2MjM2fObHf3l6ewWq3cddddnHfeeSQnJ5/xeWf6u1ZYWOjsEJ2irfU+1d///ndiY2NbJVRdRVvrvXHjRt58800yMjJcF1wb9IiWCAEffPABjz76KJ988glRUVHuDsdpLBYLv//973n00UcZOHCgu8NxKavVikaj4f3332fs2LFceumlPPfcc7zzzjvdujViz549zJ8/n4cffpgdO3bw7bffkpOTw1/+8hd3h9Yht99+O7t37+ajjz5ydygu1ZF6P/XUU3z00UcsX74cX19fJ0bnPG2pd1VVFXPnzuX1118nIiLChdGdW4/4Ny06OpqioqIW54qKiggKCuoRrRAfffQRt9xyC0uXLu2y2XpbVVVV8fPPP7Nr1y7uuOMOQP1wVRQFLy8vVq1axYUXXujmKJ0jJiaG3r17ExwcbD83ZMgQFEUhPz+fAQMGuDE651m4cCHnnXce9913HwAjRowgICCASZMm8fjjjxMTE+PmCNvujjvu4KuvvmL9+vXExcWd9bln+rsWHR3tzBCdoj31tvn3v//NU089xffff8+IESOcHKFztLXehw4dIicnh5kzZ9rPWa1WALy8vNi3bx/9+vVzeryn0yOSiAkTJrSa+rR69WomTJjgpohc58MPP+Smm27io48+4rLLLnN3OE4XFBREVlZWi3P/+c9/+PHHH1m2bBl9+vRxU2TOd95557F06VKqq6sJDAwEYP/+/Wi12jb/Ye6KamtrW3Vb6XQ6AJQusr+goijceeedLF++nLVr17bp53TChAn88MMP3HXXXfZzXe3vWkfqDfD000/zxBNP8N133zFmzBgnR+l47a334MGDW/1d+8c//kFVVRUvvvgi8fHxzgz37Nw4qLPDqqqqlF27dim7du1SAOW5555Tdu3apRw9elRRFEV54IEHlLlz59qff/jwYcXf31+57777lL179yqLFi1SdDqd8u2337qrCh3S3nq///77ipeXl7Jo0SKloKDAfquoqHBXFTqkvfU+VVedndHeeldVVSlxcXHKNddco2RnZyvr1q1TBgwYoNxyyy3uqkKHtLfeS5YsUby8vJT//Oc/yqFDh5SNGzcqY8aMUcaOHeuuKrTbrbfeqgQHBytr165t8btaW1trf87cuXOVBx54wP5406ZNipeXl/Lvf/9b2bt3r/LII48oer1eycrKckcVOqQj9X7qqacUb29vZdmyZS1eU1VV5Y4qdEhH6n0qT5md0SWTiDVr1ihAq9u8efMURVG/uVOmTGn1mtTUVMXb21vp27evsmTJEpfH3VntrfeUKVPO+vyuoiPvd3NdNYnoSL337t2rTJs2TfHz81Pi4uKUe+65p8Ufpq6gI/V+6aWXlKFDhyp+fn5KTEyMct111yn5+fmuD76DTldfoMXfqSlTprT63f3kk0+UgQMHKt7e3sqwYcOUr7/+2rWBd1JH6p2YmHja1zzyyCMuj7+jOvp+N+cpSYRGUbpIe58QQgghPIrMzhBCCCFEh0gSIYQQQogOkSRCCCGEEB0iSYQQQgghOkSSCCGEEEJ0iCQRQgghhOgQSSKEEEII0SGSRAghhBCiQySJEEIIB7FYLO4OQQiXkiRCCNFp6enpLTaC6sxzT/26oij86U9/IiwsDI1GQ0ZGRrtiKy0tJSoqipycnHa97nRef/11Ro0aRXJyMrNnzwbgiiuu4LbbbiMtLY0lS5Zw9OhRZs6cyciRI0lOTiY3N7fT5Z7O7373O5599lmnXFuINnPzsttCiG5gypQpyvz58x3y3NLSUsVoNNofr1y5UtHr9cqmTZuUgoICxWw2t6u8u+++2yGbkJWVlSkpKSlKY2OjoiiKUl5eriiKoiQlJSkvvPCCoiiKYjKZlKFDhypr1qyxv6ahoUFRFEWZPHmyAihPPPFEi+tarVZl7NixCqA8+uijbY4nKytLCQ0N7XIb6onuRVoihPBgDQ0N3aqctggLC8NgMNgfHzp0iJiYGCZOnEh0dHSrbb/Ppra2ljfffJObb76503F5eXlRXl7O/fffT3Z2NiEhIVRVVWGxWJg/fz4Ay5cvZ/z48aSnpwMQGhqKXq9HURR27dpFYmJiqy2d33nnHY4fPw7AqFGj2hxPcnIy/fr147333ut03YToKEkihGiHZcuWMXz4cPz8/AgPD2fatGnU1NQAYDKZ+Otf/0pUVBS+vr6cf/75bN++3f7apKQkXnjhhRbXS01N5Z///Kf9cXp6OnfccQd33XUXERERzJgxAwCr1crTTz9N//798fHxISEhgSeeeML+tYULF9KnTx/8/PxISUlh2bJlZ63H2co517Vqamq44YYbCAwMJCYmplWT+tm+RzZWq5X777+fsLAwoqOjW30PbN0ZN954I3feeSe5ubloNBqSkpK48cYbWbduHS+++CIajQaNRnPGroqVK1fi4+PD+PHj7edycnLQaDR8+umnTJ48GT8/P9LS0sjNzWXDhg2MHz8ef39/pk6dSkVFhf11BoOB3bt3k5qayqxZs1ixYgXZ2dlMnDjR/pysrCzGjh3bKo4DBw5QVVXFvHnzWiQRVVVVLFiwgBtvvBGA0aNHn7YeZzJz5kw++uijdr1GCEeSJEKINiooKGDOnDncdNNN7N27l7Vr1/Kb3/wGpWkj3Pvvv59PP/2Ud955h507d9K/f39mzJhBWVlZu8p555138Pb2ZtOmTbz66qsALFiwgKeeeor/+7//Y8+ePXzwwQf06tULgIULF/Luu+/y6quvkp2dzd13383111/PunXr2l1OW6513333sW7dOj7//HNWrVrF2rVr2blzZ5u+R83LDggIYOvWrTz99NP861//YvXq1a1ifPHFF/nXv/5FXFwcBQUFbN++nRdffJEJEybwxz/+kYKCAgoKCoiPjz9tHTds2NDqgzkzMxOAxYsX8+STT7J582aKioq4/vrreeqpp3jllVdYs2YNmZmZLFmyxP66AwcOYDAYmDt3LlOmTMFkMpGVlcXw4cPtz+nVqxe7d+8G1EGWtvd+x44d+Pv7M2fOHPbt22dv+XnssccYM2YMkZGRREdHExMTc9b37FRjx45l27ZtmEym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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(6, 4))\n", "lerplt.param_plot(\n", " param_name=\"mass_1_source\", \n", " param_dict=params, # or the json file name\n", " plot_label=r\"$m_1^{src}$\",\n", " histogram=False,\n", ");\n", "lerplt.param_plot(\n", " param_name=\"mass_2_source\", \n", " param_dict=params,\n", " plot_label=r\"$m_2^{src}$\",\n", " histogram=False,\n", ");\n", "plt.xlabel(r'source redshift ($m^{src} M_{\\odot}$)')\n", "plt.ylabel(r'p($m_1^{src}$)')\n", "plt.xlim(1,2.5)\n", "plt.grid(alpha=0.4)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "ler", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.14" } }, "nbformat": 4, "nbformat_minor": 2 }